use strict
是 ES5 中新增的「嚴格模式」,讓我們的 JavaScript 程式碼被嚴格對待。
使用上只要將 use strict
放在整支程式的第一行即可:
"use strict"
// do some things
或是只想要某個 function 中進入嚴格模式:
function fn(){
"use strict"
// ...
}
需要注意的是,如果同時引入了多支檔案,只要最上方的那支檔案有宣告嚴格模式,以下的都會被以嚴格模式來看待。
宣告嚴格模式後,以下的行為都會被禁止:
"use strict"
number = 1; // 未宣告
function fn(){
str = "hello"; // 未宣告
};
禁止使用 delete
刪除變數或函式。
"use strict"
const number = 1;
delete number; // 出錯
delete Object.prototype; // 出錯
"use strict"
function fn(number, number) {
// ....
}
得到錯誤:
"use strict";
var x = 010;
得到錯誤:
"use strict";
const eval = 1; // 出錯
const arguments = 1; // 出錯
"use strict";
with (Math){
x = cos(2)
};
// 出錯
// 'with' statements are not allowed in strict mode.
以下的單字不可當作變數名稱來使用:implements
、interface
、let
、package
、private
、protected
、public
、yield
、static。
看了蠻多文章,不少人都比較少使用 use strict,都是 ESLint 比較多。